home *** CD-ROM | disk | FTP | other *** search
- package javax.help;
-
- import java.applet.Applet;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Cursor;
- import java.awt.Frame;
- import java.awt.MenuComponent;
- import java.awt.MenuContainer;
- import java.awt.MenuItem;
- import java.awt.Window;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Stack;
- import java.util.Vector;
- import javax.help.Map.ID;
- import javax.swing.JPopupMenu;
- import javax.swing.MenuElement;
- import javax.swing.SwingUtilities;
- import javax.swing.UIManager;
-
- public class CSH$DisplayHelpAfterTracking implements ActionListener {
- // $FF: renamed from: hb javax.help.HelpBroker
- private HelpBroker field_0;
- private Hashtable cursors;
- private Stack cursorStack;
-
- public CSH$DisplayHelpAfterTracking(HelpBroker var1) {
- if (var1 == null) {
- throw new NullPointerException("hb");
- } else {
- this.field_0 = var1;
- }
- }
-
- public void actionPerformed(ActionEvent var1) {
- SwingHelpUtilities.installUIDefaults();
- Cursor var2 = (Cursor)UIManager.get("HelpOnItemCursor");
- if (var2 != null) {
- Vector var4 = null;
- this.cursors = null;
- if (var2 != null) {
- this.cursors = new Hashtable();
- var4 = this.getTopContainers(var1.getSource());
- Enumeration var5 = var4.elements();
-
- while(var5.hasMoreElements()) {
- this.setCursor((Container)var5.nextElement(), var2);
- }
- }
-
- Object var12 = CSH.trackCSEvents();
- Component var6 = (Component)var1.getSource();
-
- try {
- Window var7 = (Window)SwingUtilities.getAncestorOfClass(Class.forName("java.awt.Window"), var6);
- if (this.field_0 instanceof DefaultHelpBroker) {
- ((DefaultHelpBroker)this.field_0).setActivationWindow(var7);
- }
- } catch (ClassNotFoundException var11) {
- }
-
- String var13 = null;
- HelpSet var8 = null;
- if (var12 != null && var12 instanceof Component) {
- var13 = CSH.getHelpIDString((Component)var12);
- var8 = CSH.getHelpSet((Component)var12);
- } else if (var12 != null && var12 instanceof MenuItem) {
- var13 = CSH.getHelpIDString((MenuItem)var12);
- var8 = CSH.getHelpSet((MenuItem)var12);
- }
-
- if (var8 == null) {
- var8 = this.field_0.getHelpSet();
- }
-
- try {
- Map.ID var9 = ID.create(var13, var8);
- if (var9 == null) {
- var9 = var8.getHomeID();
- }
-
- this.field_0.setCurrentID(var9);
- this.field_0.setDisplayed(true);
- } catch (Exception var10) {
- }
-
- if (var4 != null) {
- Enumeration var14 = var4.elements();
-
- while(var14.hasMoreElements()) {
- this.resetAndRestoreCursors((Container)var14.nextElement());
- }
- }
-
- this.cursors = null;
- }
- }
-
- private Vector getTopContainers(Object var1) {
- Vector var2 = new Vector();
- Component var3 = null;
- if (var1 instanceof Component) {
- var3 = this.getTopComponentForComponent((Component)var1);
- } else if (var1 instanceof MenuItem) {
- var3 = this.getTopComponentForMenuItem((MenuItem)var1);
- }
-
- if (var3 instanceof Applet) {
- Enumeration var4 = ((Applet)var3).getAppletContext().getApplets();
-
- while(var4.hasMoreElements()) {
- var2.add(var4.nextElement());
- }
- }
-
- Frame[] var8 = Frame.getFrames();
-
- for(int var5 = 0; var5 < var8.length; ++var5) {
- Window[] var6 = var8[var5].getOwnedWindows();
-
- for(int var7 = 0; var7 < var6.length; ++var7) {
- var2.add(var6[var7]);
- }
-
- if (!var2.contains(var8[var5])) {
- var2.add(var8[var5]);
- }
- }
-
- return var2;
- }
-
- private Component getTopComponentForComponent(Component var1) {
- for(Object var2 = var1; var2 != null; var2 = ((Component)var2).getParent()) {
- var1 = var2;
- if (var2 instanceof Window || var2 instanceof Applet) {
- break;
- }
-
- if (var2 instanceof MenuElement) {
- if (var2 instanceof JPopupMenu) {
- var2 = ((JPopupMenu)var2).getInvoker();
- } else {
- var2 = ((MenuElement)var2).getComponent();
- }
- }
- }
-
- return (Component)var1;
- }
-
- private Component getTopComponentForMenuItem(MenuItem var1) {
- MenuContainer var2 = var1.getParent();
-
- MenuContainer var3;
- for(var3 = var2; var3 != null && !(var3 instanceof Component); var3 = ((MenuComponent)var3).getParent()) {
- }
-
- if (var3 == null) {
- return null;
- } else {
- Component var4 = this.getTopComponentForComponent((Component)var3);
- return var4;
- }
- }
-
- private void setCursor(Component var1, Cursor var2) {
- CSH.access$100("setCursor");
- if (var1 != null) {
- this.cursorStack = new Stack();
- this.setAndStoreCursors(var1, var2);
- this.cursorStack = null;
- }
- }
-
- private void setAndStoreCursors(Component var1, Cursor var2) {
- boolean var3 = false;
- Cursor var4 = var1.getCursor();
- if (this.cursorStack.empty()) {
- this.cursorStack.push(var4);
- this.cursors.put(var1, var4);
- var3 = true;
- CSH.access$100("store cursor " + var4 + " on " + var1);
- } else if (var4 != (Cursor)this.cursorStack.peek()) {
- this.cursorStack.push(var4);
- this.cursors.put(var1, var4);
- var3 = true;
- CSH.access$100("store cursor " + var4 + " on " + var1);
- }
-
- if (var1 instanceof Container) {
- Container var5 = (Container)var1;
- int var6 = var5.getComponentCount();
- Component[] var7 = var5.getComponents();
-
- for(int var8 = 0; var8 < var6; ++var8) {
- Component var9 = var7[var8];
- if (var1 != null) {
- this.setAndStoreCursors(var9, var2);
- }
- }
- }
-
- var1.setCursor(var2);
- CSH.access$100("set cursor on " + var1);
- if (var3) {
- this.cursorStack.pop();
- }
-
- }
-
- private void resetAndRestoreCursors(Component var1) {
- CSH.access$100("resetAndRestoreCursors");
- if (var1 != null) {
- this.cursorStack = new Stack();
- this.restoreCursors(var1);
- this.cursorStack = null;
- }
- }
-
- private void restoreCursors(Component var1) {
- boolean var2 = false;
- Cursor var3 = (Cursor)this.cursors.get(var1);
- if (var3 != null) {
- this.cursorStack.push(var3);
- var1.setCursor(var3);
- CSH.access$100("restored cursor " + var3 + " on " + var1);
- var2 = true;
- } else if (!this.cursorStack.empty()) {
- var1.setCursor((Cursor)this.cursorStack.peek());
- CSH.access$100("restored cursor " + (Cursor)this.cursorStack.peek() + " on " + var1);
- }
-
- if (var1 instanceof Container) {
- Container var4 = (Container)var1;
- int var5 = var4.getComponentCount();
- Component[] var6 = var4.getComponents();
-
- for(int var7 = 0; var7 < var5; ++var7) {
- Component var8 = var6[var7];
- if (var1 != null) {
- this.restoreCursors(var8);
- }
- }
- }
-
- if (var2) {
- this.cursorStack.pop();
- }
-
- }
- }
-